package cn.tedu.knows.search.repository;

import cn.tedu.knows.search.model.Item;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository;

@Repository
//继承ElasticsearchRepository自动生成基本增删改查
//泛型<Item,Long>第一个参数是操作的实体类,第二个参数是id的类型
public interface ItemRepository
        extends ElasticsearchRepository<Item,Long> {
    //已经可以通过这个接口获得基本的CRUD方法了

    //SpringData框架所有连接第三方数据源的自定义方法,
    //核心思想都是通过方法名表示要对数据源进行的操作
    Iterable<Item> queryItemsByTitleMatches(String title);


    Iterable<Item>
        queryItemsByTitleMatchesAndBrandMatches(
                String title,String brand);

    Iterable<Item>
        queryItemsByTitleMatchesOrderByPriceAsc(
                String title);

    //分页查询返回值是Page
    Page<Item>
         queryItemsByTitleMatchesOrderByPriceAsc(
            String title, Pageable pageable);



}
